package com.irssproject.app.dao.main.impl;

import java.util.List;

import org.springframework.dao.DataAccessException;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;

import com.irssproject.app.bean.main.Usuari;
import com.irssproject.app.dao.main.iface.UsuariDAO;
import com.irssproject.app.utils.Constants;

public class UsuariDAOImpl extends HibernateDaoSupport implements UsuariDAO {

	public Usuari autenticarUsuari(Usuari usuari) throws Exception 
	{
		try
		{
			Usuari us = (Usuari)getHibernateTemplate().find("from Usuari where login = ? and password = ?",new Object[]{usuari.getLogin(),usuari.getPassword()}).get(0);
			return us;
		}
		catch(DataAccessException e)
		{
			throw new Exception(Constants.EXCEPTION_LOGIN_INCORRECT);
		}
	}

	public void deleteUsuari(Usuari usuari) 
	{
		getHibernateTemplate().delete(usuari);
	}

	public Usuari getUsuari(String login)
	{
		try
		{
			return (Usuari)getHibernateTemplate().find("from Usuari where login = ?", login).get(0);
		}
		catch(IndexOutOfBoundsException e)
		{
			return null;
		}
	}

	
	public void insertUsuari(Usuari usuari) throws Exception {
		try{
			getHibernateTemplate().save(usuari);
		}
		catch(DataAccessException e)
		{
			throw new Exception(Constants.EXCEPTION_LOGIN_ALREADY_EXISTS);
		}
	}

	public void updateUsuari(Usuari usuari) throws Exception
	{
		getHibernateTemplate().update(usuari);
	}
	
	public List<String> getListUsuaris()
	{
//		return (List<String>)getHibernateTemplate().ge("getListUsuaris");
		return null;
	}

}
